Cryosphere · Snow Mapping Enhancement Index
BSI_SNOW – Snow Bare Surface Index
BSI_SNOW is a modified form of the BSI index adapted for snow detection and clean–dirty snow separation,
using Red, Blue, NIR and SWIR reflectance to distinguish snow from bare rock and mixed pixels.
1. Scientific Definition
The BSI_SNOW index enhances snow and ice using a soil-index structure but with
thresholds and interpretation adapted to cryosphere studies.
Formula
BSI_SNOW = (SWIR + Red − (NIR + Blue)) / (SWIR + Red + NIR + Blue)
SWIR – sensitive to snow grain size & impurities
Red – strong snow reflectance
NIR – helps distinguish snow from soil
Blue – useful for clean vs dirty snow
Interpretation
High positive values → clean snow / ice
Moderate values → dirty snow / mixed snow–rock
Negative → soil / rocks / water / vegetation
Applications
Snow cover mapping
Dirty snow detection
Snow–rock separation in mountains
Cryosphere and melt analysis
2. Required Bands
Sentinel-2
Blue → B2
Red → B4
NIR → B8
SWIR → B11
Landsat 8/9
Blue → B2
Red → B4
NIR → B5
SWIR1 → B6
Suggested Palette
[ "#0b1220", "#28405c", "#4f7da3", "#9ac7e6", "#ffffff" ]
3. Google Earth Engine Code – BSI_SNOW
Copy Code
// BSI_SNOW = (SWIR + Red - (NIR + Blue)) / (SWIR + Red + NIR + Blue)
var roi = geometry;
Map.centerObject(roi, 9);
// Sentinel-2 SR
var s2 = ee.ImageCollection("COPERNICUS/S2_SR")
.filterBounds(roi)
.filterDate("2023-01-01", "2023-12-31")
.filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE", 40))
.select(["B2","B4","B8","B11"]); // Blue, Red, NIR, SWIR
var img = s2.median().clip(roi);
// BSI_SNOW
var bsi_snow = img.expression(
"(SW + R - (N + B)) / (SW + R + N + B)",
{
"SW": img.select("B11"), // SWIR
"R": img.select("B4"), // Red
"N": img.select("B8"), // NIR
"B": img.select("B2") // Blue
}
).rename("BSI_SNOW");
var vis = {
min: -1,
max: 1,
palette: ["#0b1220","#28405c","#4f7da3","#9ac7e6","#ffffff"]
};
Map.addLayer(bsi_snow, vis, "BSI_SNOW");
// Optional snow mask
var snowMask = bsi_snow.gt(0.2).selfMask();
Map.addLayer(snowMask, {palette:["#ffffff"]}, "Snow Mask (BSI_SNOW > 0.2)", false);
// Export
Export.image.toDrive({
image: bsi_snow,
description: "BSI_SNOW_export",
fileNamePrefix: "BSI_SNOW",
region: roi,
scale: 20,
crs: "EPSG:4326",
maxPixels: 1e13
});
BSI_SNOW – Snow Bare Surface Index · Start4IT Cryosphere Library